﻿//===================================================================================
// Copyright (c) Ryan Garrett.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===================================================================================

using System;

namespace Caffeine.Core.Test.TestModel
{
    public class ModelForFieldTestingA  : ModelBase
    {
        protected readonly ModelProperty<String> _ignored2 = null;
        internal ModelCollection<ModelForFieldTestingA> _ignored3 = null;
        private ModelCollection<ModelForFieldTestingA> _ignored4 = null;

        [ModelBackingProperty(typeof(String), "StringPropertyA", ModelBase.StandardBehaviors, false)]
        protected readonly ModelProperty<String> _stringPropertyA = null;

        public ModelProperty<String> StringPropertyA
        {
            get { return _stringPropertyA; }
        }

        [ModelBackingProperty(typeof(ModelForFieldTestingA), "ChildA", ModelBase.StandardBehaviors, false)]
        protected readonly ModelProperty<ModelForFieldTestingA> _ChildA = null;

        public ModelProperty<ModelForFieldTestingA> ChildA
        {
            get { return _ChildA; }
        }

        [ModelBackingProperty(typeof(ModelForFieldTestingA), "CollectionA", ModelBase.StandardBehaviors, true)]
        protected readonly ModelCollection<ModelForFieldTestingA> _CollectionA = null;

        public ModelCollection<ModelForFieldTestingA> CollectionA
        {
            get { return _CollectionA; }
        }
    }
}
